home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 78 / 64er_Magazin_Sonderheft_78_19xx_Markt__Technik_de_Side_A.d64 / mas 1.0 (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  14KB  |  390 lines

  1. 10 rem*****************************
  2. 20 rem*       vorprogramm         *
  3. 30 rem*****************************
  4. 40 :
  5. 50 ifpeek(49153)<>26thenload"mas.ms",8,1
  6. 60 ifpeek(34816)<>40thenload"mas.zs",8,1
  7. 70 poke56578,peek(56578)or3:poke56576,(peek(56576)and252)or1:poke53272,18
  8. 80 poke648,132:poke53280,15:poke53281,15:sys49152:poke657,128
  9. 90 poke56,132:clr:poke650,128:poke808,225
  10. 100 i=1:j=1:i2=1:as=1:sp=1:mp=1:af=1:mz=1:ze=1:s2=1:z2=1:nf=1:ef=0:vf=0:xf=0:t=0
  11. 110 l$="                     ":bu$="]^\[220][168]./()'&-+":gn=0:gp=0:na=0:wv=0:gv=0
  12. 120 s$="----------":ev=0:nv=0:lf=0:d2=0::dn=0:l2=0:d2$="":nt=51259:sa=-4:sa$="4"
  13. 130 x$="":ex$="":cr$=chr$(13):e$="":x2$="":sf=1:df=0:ia=0:r2=0:x%=0:f=0:ps=0
  14. 140 gf=0:gf$(0)="[196]iskettenlaufwerk":gf$(1)="[196]rucker":a$="":k=1
  15. 150 dimna$(25,3),n2$(25,3),vr$(25,3),v2$(25,3),n$(1872),p(15),sp(30,3),n(2)
  16. 160 dimih$(15,2),nm$(2),hm(4,1),li$(45),dn(25,3),dp(25,3),dn$(25),dp$(25),nf(2)
  17. 170 fori=0to4:readhm(i,0):readhm(i,1):next
  18. 180 data1,9,10,8,18,7,25,8,33,6
  19. 190 printchr$(14)"[147]":gosub450:print"[146]";:fori=1to40:print"[163]";:next
  20. 200 _s0,20,"[176]";:fori=1to20:print"[192]";:next
  21. 210 print"[178][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][174][221]"spc(20)"[221]"spc(9)"[221]       [221][173]";
  22. 220 fori=1to20:print"[192]";:next:print"[177][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][189]";
  23. 230 gosub710:gosub770:goto1200
  24. 240 :
  25. 250 rem*****************************
  26. 260 rem*      unterprogramme       *
  27. 270 rem*****************************
  28. 280 :
  29. 290 >>>       menue-windows          <<<
  30. 300 sp=1:ze=1
  31. 310 _isp(sp,0),sp(sp,1)+ze-1,sp(sp,2),1,0
  32. 320 getx$:ifx$=""then320
  33. 330 _ox$,"_"+cr$,x%:ifx%<>0or(x$="[136]"andef=1orx$="[133]"andef=1)then420
  34. 340 _ox$,"[145][157]",x%:ifx%<>0then360
  35. 350 goto320
  36. 360 z2=ze:s2=sp:ifx$=""thenze=ze+1:ifze>sp(sp,3)thenze=1
  37. 370 ifx$="[145]"thenze=ze-1:ifze=0thenze=sp(sp,3)
  38. 380 ifx$=""thensp=sp+1:ifsp>asthensp=1
  39. 390 ifx$="[157]"thensp=sp-1:ifsp=0thensp=as
  40. 400 ifze>sp(sp,3)thensp=s2
  41. 410 _isp(s2,0),sp(s2,1)+z2-1,sp(s2,2),1,0:goto310
  42. 420 _isp(sp,0),sp(sp,1)+ze-1,sp(sp,2),1,0:ef=0:return
  43. 430 :
  44. 440 >>>        menue-zeile           <<<
  45. 450 _s0,0,"  [197][201][206][199][193][194][197][160] [218][197][201][199][197][206][160][160][196][193][212][197][201][160][160][197][216][212][210][193][211]  [197][206][196][197]  ";:return
  46. 460 :
  47. 470 >>>           cancel             <<<
  48. 480 _r:gosub450:gosub710:gosub770:goto1070
  49. 490 :
  50. 500 >>>       geraete-check          <<<
  51. 510 x$="":poke650,64:poke768,61:open1,8+gf*sa,15:close1
  52. 520 poke768,139:ifst<>-128anddf=0thenpoke650,128:return
  53. 530 ifst<>-128thenpoke650,128:_c:df=0:return
  54. 540 ifdf=0then:_w2,5,35,9,2:_s16,7,"[194]itte"
  55. 550 ifdf=0then:_s4+gf*5,9,gf$(gf)" einschalten [220]":_s15,11,"'[212]aste'":df=1
  56. 560 gosub630:ifx$="_"orx$=""thenpoke650,128:_c:df=0:return
  57. 570 goto510
  58. 580 :
  59. 590 >>>      diskettenfehler         <<<
  60. 600 open3,8,15:input#3,er,er$,e1,e2:close3:return
  61. 610 :
  62. 620 >>>          taste              <<<
  63. 630 getx$:ifx$=""then630
  64. 640 return
  65. 650 :
  66. 660 >>>       fehler ausgabe         <<<
  67. 670 _w2,6,36,7,2:_s4,8,"[196]iskettenfehler:":_s3,10,er","er$","e1","e2""
  68. 680 gosub630:_c:return
  69. 690 :
  70. 700 >>>    tastenfeld loeschen       <<<
  71. 710 _i0,23,40,2,1:_i0,23,40,2,0:return
  72. 720 :
  73. 730 >>>    tastenfeld anzeige 1      <<<
  74. 740 gosub710:_s1,23,"< _ >:[218]ur^ck":_s1,24,"<[210]/[211]>:[205]en^":return
  75. 750 :
  76. 760 >>>    tastenfeld anzeige 2      <<<
  77. 770 _s4,24,"[205][193][211] 1.0  von [198]rank [207]]wald - 1989":return
  78. 780 :
  79. 790 >>>        faecherwahl           <<<
  80. 800 _w6,3,27,15,6:_a7,4,6,na$(0,3),13:_a20,4,6,na$(13,3),13
  81. 810 as=2:sp(1,0)=7:sp(1,1)=4:sp(1,2)=12:ifaf<=13thensp(1,3)=af:as=1:goto830
  82. 820 sp(1,3)=13:sp(2,0)=20:sp(2,1)=4:sp(2,2)=12:sp(2,3)=af-13:as=2
  83. 830 gosub300:nf=(sp-1)*13+ze-1:ps=nf*72:return
  84. 840 :
  85. 850 >>>       inhalt laden           <<<
  86. 860 gf=0:gosub510:ifx$="_"orx$=""thenreturn
  87. 870 x$="":open2,8,2,"inhalt,s,r":close2:gosub600:ifer=62thenia=0:er=0:return
  88. 880 ifer<>0thengosub670:return
  89. 890 open2,8,2,"inhalt,s,r":input#2,ia:fori=1toia:forj=0to2
  90. 900 input#2,ih$(i,j):nextj,i:close2:return
  91. 910 :
  92. 920 >>>       einen moment           <<<
  93. 930 _w10,8,20,5,0:_s12,10,"[144][197]inen [205]oment ...":return
  94. 940 :
  95. 950 >>>    durchschnittsnote        <<<
  96. 960 gv=0:dn(nf,3)=0:dp(nf,3)=0:fori=0to2:nn=nf*72+i*24+1
  97. 970 ifn$(nn)=""thennf(i)=0:wv=0:dn(nf,i)=0:dp(nf,i)=0:goto990
  98. 980 nf(i)=1:_dn$(nn),24,0,dp(nf,i):_dn$(nn),24,1,dn(nf,i):wv=val(vr$(nf,i))
  99. 990 dn(nf,3)=dn(nf,3)+wv*dn(nf,i)
  100. 1000 dp(nf,3)=dp(nf,3)+val(vr$(nf,i))*dp(nf,i):gv=gv+wv:next:ifgv=0thenreturn
  101. 1010 dn(nf,3)=int((dn(nf,3)/gv)*100+.5)/100:dp(nf,3)=int(dp(nf,3)/gv+.5):return
  102. 1020 :
  103. 1030 rem****************************
  104. 1040 rem*       hauptmenue         *
  105. 1050 rem****************************
  106. 1060 :
  107. 1070 mp=0
  108. 1080 _ihm(mp,0),0,hm(mp,1),1,0
  109. 1090 gosub630:ifx$=cr$thenmp=mp+1:gosub740:onmpgoto2610,3070,1200,3660,3850
  110. 1100 ifx$=""orx$="[157]"then1120
  111. 1110 goto1090
  112. 1120 mz=mp:ifx$=""thenmp=mp+1:ifmp=5thenmp=0
  113. 1130 ifx$="[157]"thenmp=mp-1:ifmp=-1thenmp=4
  114. 1140 _ihm(mz,0),0,hm(mz,1),1,0:goto1080
  115. 1150 :
  116. 1160 rem****************************
  117. 1170 rem*          datei           *
  118. 1180 rem****************************
  119. 1190 :
  120. 1200 gosub930:vf=0:lf=0:l2=0:gf=0:ifsf=1thengosub710:gosub770
  121. 1210 ifx$<>"_"thenfori=0to25:forj=0to3:n2$(i,j)="":v2$(i,j)="":nextj,i:xf=1
  122. 1220 gosub860:_c:ifsf=0andx$<>""then480
  123. 1230 ifx$<>""then1200
  124. 1240 ifia=0thenr2=1:ia=1:gosub710:gosub740:goto1500
  125. 1250 _w13,7,12,6,6:_s14,8,"[146][204]aden":_s14,9,"[206]eueingabe":_s14,10,"[214]erbessern"
  126. 1260 _s14,11,"[204]\schen":as=1:sp(1,0)=14:sp(1,1)=8:sp(1,2)=10:sp(1,3)=4:gosub300
  127. 1270 if(x$="_"orx$="")andsf=0then480
  128. 1280 ifx$="_"orx$=""or(ze=3andsf=1)then1260
  129. 1290 gosub740
  130. 1300 ifze=1then2190
  131. 1310 ifze=2andia+1=16then1360
  132. 1320 ifze=2thenia=ia+1:r2=ia:goto1500
  133. 1330 ifze=3then1410
  134. 1340 ifze=4thenlf=1:goto2190
  135. 1350 :
  136. 1360 _w7,5,24,13,2:_s9,7,"[196]iese [196]atendiskette":_s9,9,"ist [194]ereits voll [220]"
  137. 1370 _s9,11,"[194]itte legen [211]ie eine":_s9,13,"neue ein.":_s15,15,"'[212]aste'"
  138. 1380 gosub630:if(x$="_"orx$="")andsf=0then480
  139. 1390 _r:goto1200
  140. 1400 :
  141. 1410 vf=0:fori=1toia:forj=0to2:ifih$(i,j)=nm$(j)thenvf=vf+1
  142. 1420 nextj:ifvf=3thenr2=i:i=ia+1:next:goto1470
  143. 1430 vf=0:nexti:_w3,6,33,11,2:_s5,8,"[194]itte legen [211]ie diejenige"
  144. 1440 _s5,10,"[196]iskette ein, auf der sich":_s5,12,"die aktuelle [196]atei befindet [220]"
  145. 1450 _s14,14,"'[212]aste'":gosub630:ifx$=""then480
  146. 1460 _r:goto1200
  147. 1470 fori=0to25:forj=0to3:v2$(i,j)=vr$(i,j):n2$(i,j)=na$(i,j):nextj,i
  148. 1480 fori=0to2:ih$(r2,i)=nm$(i):nexti:vf=1:goto1510
  149. 1490 :
  150. 1500 ifxf=1thenfori=0to2:ih$(r2,i)="":next:xf=0
  151. 1510 _w3,6,33,7,6:_s4,7,"[206]ame     : "ih$(r2,0):_s4,9,"[203]lasse   : "ih$(r2,1)
  152. 1520 _s4,11,"[211]chuljahr: "ih$(r2,2)
  153. 1530 f=1:ex$="_[145]"
  154. 1540 onfgosub1630,1640,1650
  155. 1550 ifx$=""andsf=0then480
  156. 1560 ifx$=""orx$="_"then:_r:goto1200
  157. 1570 ifih$(r2,f-1)=""then1540
  158. 1580 if(x$=""orx$=cr$)andf<3thenf=f+1:goto1540
  159. 1590 ifx$=""thenf=1:goto1540
  160. 1600 ifx$="[145]"andf>1thenf=f-1:goto1540
  161. 1610 ifx$="[145]"thenf=3:goto1540
  162. 1620 goto1670
  163. 1630 _f15,7,20,bu$,ex$,ih$(r2,0),x$:return
  164. 1640 _f15,9,9,bu$+"",ex$,ih$(r2,1),x$:return
  165. 1650 _f15,11,5,"/",ex$,ih$(r2,2),x$:return
  166. 1660 :
  167. 1670 _w1,4,37,14,6:_s14,23,"<f 1>:[198]ach+ <f 5>:[204]\schen"
  168. 1680 _s14,24,"<f 3>:[198]ach- <f 7>:[198]ertig":i=0:ex$="_[133][134][135][136][145]"
  169. 1690 _s2,5,"[198]ach"i+1"[157][146] ":_s3,7,"[194]ez.: "left$(l$,12):_s9,7,n2$(i,3)
  170. 1700 forj=0to2:_s3,9+j*2,j+1"[157]. [194]ez.: "left$(l$,10):_s13,9+j*2,n2$(i,j)
  171. 1710 _s24,9+j*2,"[193]nteil:     ":_s32,9+j*2,v2$(i,j):nextj
  172. 1720 _s3,15,"[199]esamtanteil:    ":_s17,15,v2$(i,3):f=1
  173. 1730 onfgosub1890,1900,1910,1900,1910,1900,1910,1920
  174. 1740 ifx$=""andsf=0then480
  175. 1750 ifx$=""then:_r:goto1200
  176. 1760 ifx$="_"then:_c:gosub710:gosub740:goto1530
  177. 1770 if(x$=cr$orx$="")andf<8thenf=f+1:goto1730
  178. 1780 ifx$=""thenf=1:goto1730
  179. 1790 ifx$=cr$andi=25then1870
  180. 1800 ifx$="[145]"andf>1thenf=f-1:goto1730
  181. 1810 ifx$="[145]"thenf=8:goto1730
  182. 1820 if(x$="[133]"orx$=cr$)andi<25theni=i+1:goto1690
  183. 1830 ifx$="[133]"theni=0:goto1690
  184. 1840 ifx$="[134]"andi>0theni=i-1:goto1690
  185. 1850 ifx$="[134]"theni=25:goto1690
  186. 1860 ifx$="[135]"thenforj=0to3:n2$(i,j)="":v2$(i,j)="":next:goto1690
  187. 1870 forj=0to25:ifn2$(j,3)<>""thenj=26:next:goto1940
  188. 1880 next:goto1730
  189. 1890 _f9,7,12,bu$,ex$,n2$(i,3),x$:return
  190. 1900 _f13,9+(f-2),10,bu$,ex$,n2$(i,f/2-1),x$:return
  191. 1910 _f32,8+(f-2),3,"",ex$,v2$(i,(f-3)/2),x$:return
  192. 1920 _f17,15,3,"",ex$,v2$(i,3),x$:return
  193. 1930 :
  194. 1940 i2=i:gf=0:gosub510:ifx$=""andsf=0then480
  195. 1950 ifx$=""then:_r:goto1200
  196. 1960 ifx$="_"theni=i2:goto1690
  197. 1970 _w5,7,28,9,0:_s7,9,"[144][196]ie [196]atei wird angelegt."
  198. 1980 _s7,11,"[194]itte einen [205]oment":_s7,13,"[199]eduld ...":dn$=str$(r2)
  199. 1990 open1,8,15,"s:inhalt":print#1,"s:"+dn$+".s":close1
  200. 2000 open2,8,2,"inhalt,s,w":print#2,ia
  201. 2010 fori=1toia:print#2,ih$(i,0)cr$ih$(i,1)cr$ih$(i,2):next:close2
  202. 2020 gosub600:ifer<>0thengosub670:goto2000
  203. 2030 onlfgoto2520:af=0:fori=0to25:ifn2$(i,3)=""thennext:goto2070
  204. 2040 forj=0to3:ifn2$(i,j)=""thenn2$(i,j)=" "
  205. 2050 ifv2$(i,j)=""thenv2$(i,j)=" "
  206. 2060 na$(af,j)=n2$(i,j):vr$(af,j)=v2$(i,j):nextj:af=af+1:nexti
  207. 2070 fori=0to2:nm$(i)=ih$(r2,i):next
  208. 2080 open2,8,2,dn$+".s,s,w":print#2,af:fori=0toaf-1
  209. 2090 forj=0to3:print#2,na$(i,j)cr$vr$(i,j):nextj,i:close2
  210. 2100 gosub600:ifer<>0thengosub670:_r:sf=1:goto1200
  211. 2110 ifvf=1then2160
  212. 2120 fori=0to1872:n$(i)="":next:fori=afto25:na$(i,3)="":next
  213. 2130 open2,8,2,dn$+".r,l,"+chr$(5)
  214. 2140 open1,8,15,"p"+chr$(2)+chr$(80)+chr$(7)+chr$(1):print#2,chr$(255):close1
  215. 2150 close2:gosub600:ifer<>0ander<>50thengosub670:_r:sf=1:goto1200
  216. 2160 _s1,21,left$(l$,20)""left$(l$,9)"       "
  217. 2170 _s1,21,"[144]"nm$(0):_s22,21,nm$(1):_s33,21,nm$(2)"":sf=0:goto480
  218. 2180 :
  219. 2190 _w0,2,40,18,6:_s5,3,"[144][206]ame"tab(22)"[203]lasse    [211]chulj."
  220. 2200 forj=0to2:fori=1toia:li$(j*ia+i)=ih$(ia-i+1,j):nexti,j
  221. 2210 _a1,4,6,li$(1),ia:_a22,4,6,li$(ia+1),ia:_a33,4,6,li$(2*ia+1),ia
  222. 2220 as=1:sp(1,0)=1:sp(1,1)=4:sp(1,2)=38:sp(1,3)=ia:gosub300
  223. 2230 ifx$=""andsf=0then480
  224. 2240 ifx$=""orx$="_"then:_r:goto1200
  225. 2250 fori=0to2:ifih$(ia-ze+1,i)<>nm$(i)theni=3:next:goto2270
  226. 2260 next:l2=1:sf=0:iflf=0then480
  227. 2270 _isp(sp,0),sp(sp,1)+ze-1,sp(sp,2),1,0:gosub510:ifx$=""andsf=0then480
  228. 2280 ifx$=""then:_r:goto1200
  229. 2290 ifx$="_"then:_c:goto2190
  230. 2300 onlfgoto2390:_w11,8,18,7,0:_s13,10,"[144][196]ie [196]atei wird":_s13,12,"geladen ..."
  231. 2310 dn$=str$(ia-ze+1):open2,8,2,dn$+".s,s,r":input#2,af
  232. 2320 fori=0toaf-1:forj=0to3:input#2,na$(i,j),vr$(i,j):nextj,i:close2
  233. 2330 gosub600:ifer<>0thengosub670:_r:sf=1:goto1200
  234. 2340 ifaf<26thenfori=afto25:forj=0to3:na$(i,j)="":vr$(i,j)="":nextj,i
  235. 2350 open2,8,2,dn$+".r":open1,8,15,"p"+chr$(2)+chr$(1)+chr$(0)+chr$(1)
  236. 2360 fori=1to1872:input#2,n$(i):ifn$(i)="[255]"thenn$(i)=""
  237. 2370 next:close1:close2:gosub600:ifer<>0thengosub670:_r:sf=1:goto1200
  238. 2380 fori=0to2:nm$(i)=ih$(ia-ze+1,i):next:goto2160
  239. 2390 _w5,7,27,9,2:_s7,9,"[211]oll die entsprechende"
  240. 2400 _s7,11,"[196]atei wirklich gel\scht":_s7,13,"werden ?  ([202]/[206])"
  241. 2410 gosub630:ifx$=""andsf=0then480
  242. 2420 ifx$=""then:_r:goto1200
  243. 2430 ifx$="_"orx$="n"then:_c:_c:goto2190
  244. 2440 ifx$<>"j"then2410
  245. 2450 _c:_w5,7,28,9,0:_s7,9,"[144][196]ie [196]atei wird gel\scht."
  246. 2460 _s7,11,"[194]itte einen [205]oment":_s7,13,"[199]eduld ...":d2$=str$(ia-ze+1)
  247. 2470 open1,8,15,"s:"+d2$+".s":print#1,"s:"+d2$+".r":print#1,"s:inhalt"
  248. 2480 d2=val(d2$):ifd2=iathen2510
  249. 2490 fori=d2toia-1:print#1,"r:"str$(i)".s="str$(i+1)".s"
  250. 2500 print#1,"r:"str$(i)".r="str$(i+1)".r":forj=0to2:ih$(i,j)=ih$(i+1,j):nextj,i
  251. 2510 close1:ia=ia-1:goto2000
  252. 2520 _r:ifl2=1thenrun
  253. 2530 ifsf=1then1200
  254. 2540 dn=val(dn$):ifd2<dnthendn$=str$(dn-1)
  255. 2550 goto480
  256. 2560 :
  257. 2570 rem****************************
  258. 2580 rem*        eingabe           *
  259. 2590 rem****************************
  260. 2600 :
  261. 2610 gosub710:gosub740:gosub800:ifx$="_"orx$=""then480
  262. 2620 _w0,2,40,18,6:_s int((39-len(na$(nf,3)))/2),3,""na$(nf,3)
  263. 2630 _s14,23,"<f 1>:[196]rucken":_s14,24,"<f 7>:[198]ertig"
  264. 2640 _s0,4,"[171][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][179]"
  265. 2650 _s1,5,na$(nf,0)":":_s13,5,"[221]"na$(nf,1)":":_s26,5,"[221]"na$(nf,2)":"
  266. 2660 _s13,6,"[221]"spc(12)"[221]":_s13,19,"[177]"spc(12)"[177]"
  267. 2670 fori=0to2:_s1+i*13,6,left$(s$,len(na$(nf,i))+1):next
  268. 2680 fori=0to11:_s1,7+i,"[190]    [191][190]    [191][221][190]    [191][190]    [191][221][190]    [191][190]    [191]":next
  269. 2690 as=6:sp(1,0)=1:sp(1,1)=7:sp(1,2)=6:sp(1,3)=12
  270. 2700 fori=2to6:sp(i,0)=sp(i-1,0)+7+(i/2=int(i/2)):sp(i,1)=7:sp(i,2)=6:sp(i,3)=12
  271. 2710 next:fori=0to5:_asp(i+1,0)+1,7,6,n$(ps+i*12+1),12:next:sp=1:ze=1
  272. 2720 ef=1:gosub310:ifx$<>cr$then2810
  273. 2730 e$=n$(ps+(sp-1)*12+ze)
  274. 2740 _fsp(sp,0)+1,6+ze,4,"#","_[136][133]",e$,x$
  275. 2750 ife$=""then2790
  276. 2760 _o"#",e$,x%:ifx%=0andval(e$)<=0orval(e$)>6then2740
  277. 2770 ifx%=0then2790
  278. 2780 t=val(right$(e$,x%+1)):ift<0ort>15ort<>int(t)then2740
  279. 2790 n$(ps+(sp-1)*12+ze)=e$:ifx$<>cr$then2810
  280. 2800 goto2720
  281. 2810 gf=0:ifx$="[133]"thengf=1
  282. 2820 x2$=x$:gosub510:ifx$="_"then2720
  283. 2830 ifx$=""then2810
  284. 2840 ifgf=1then2950
  285. 2850 x$=x2$:gosub930:hb=int((ps+1)/256):lb=(ps+1)-256*hb:open2,8,2,dn$+".r"
  286. 2860 open1,8,15,"p"+chr$(2)+chr$(lb)+chr$(hb)+chr$(1)
  287. 2870 fori=1to72:ifx$=""theninput#2,n$(ps+i):ifn$(ps+i)="[255]"thenn$(ps+i)=""
  288. 2880 ifx$=""thennext:goto2910
  289. 2890 ifn$(ps+i)<>""thenprint#2,n$(ps+i):next:goto2910
  290. 2900 print#2,"[255]":next
  291. 2910 close1:close2:gosub600:ifer<>0thengosub670:ifx$=""then480
  292. 2920 ifer<>0then:_c:close2:goto2850
  293. 2930 ifx$="_"then:_r:goto2610
  294. 2940 goto480
  295. 2950 open4,8+sa
  296. 2960 a$=na$(nf,3):print#4,cr$;""a$"[146]";:fori=1to80-len(a$):print#4,"-";:next
  297. 2970 print#4,cr$:fori=0to2:a$=na$(nf,i):ifa$=""thennexti:goto3010
  298. 2980 print#4,""a$spc(12-len(a$))":  ";:forj=0to1:ifj=1thenprint#4,cr$;spc(15);
  299. 2990 fork=1to12:print#4,n$(ps+i*24+j*12+k)" ";:nextk,j
  300. 3000 print#4,cr$:nexti
  301. 3010 fori=1to80:print#4,"-";:next:print#4,cr$:close4:goto2720
  302. 3020 :
  303. 3030 rem****************************
  304. 3040 rem*         zeigen           *
  305. 3050 rem****************************
  306. 3060 :
  307. 3070 gosub710:gosub740:_w14,8,12,4,6
  308. 3080 as=1:sp(1,0)=15:sp(1,1)=9:sp(1,2)=10:sp(1,3)=2
  309. 3090 _s15,9,"[197]inzelfach":_s15,10,"[199]esamt"
  310. 3100 gosub300:ifx$<>cr$then480
  311. 3110 ifze=2then3380
  312. 3120 gosub800:ifx$="_"then:_c:goto3080
  313. 3130 ifx$=""then480
  314. 3140 _s14,23,"<f 1>:[196]rucken"
  315. 3150 gosub930:gosub960:_c:_c:ifgv=0then3250
  316. 3160 _w4,4,31,14,6
  317. 3170 _s int((39-len(na$(nf,3)))/2),5,""na$(nf,3):_s6,8,"[197]inzelnoten:"
  318. 3180 fori=0to2:_s8,10+i,na$(nf,i)tab(19)":  ";:ifnf(i)=0thennext:goto3210
  319. 3190 dn(nf,i)=int(dn(nf,i)*100+.5)/100:dp(nf,i)=int(dp(nf,i)+.5)
  320. 3200 printstr$(dn(nf,i))tab(28)str$(dp(nf,i)):_s28,10+i,"#":next
  321. 3210 _s22,13,"[192][192][192][192][192][192][192][192][192][192]":_s6,15,"[199]esamtnote :"tab(22)dn(nf,3)tab(28)dp(nf,3)
  322. 3220 _s28,15,"#":gosub630:ifx$="_"then3270
  323. 3230 ifx$="[133]"then3280
  324. 3240 goto480
  325. 3250 _w8,6,23,9,2:_s10,8,"[218]u diesem [198]ach gibt":_s13,10,"es noch keine"
  326. 3260 _s15,12,"[197]ingaben !":gosub630:ifx$=""then480
  327. 3270 _c:gosub710:gosub740:goto3120
  328. 3280 gf=1:gosub510:ifx$="_"then3220
  329. 3290 ifx$=""then480
  330. 3300 open4,8+sa
  331. 3310 a$=na$(nf,3):print#4,cr$;""a$"[146]";:fori=1to30-len(a$):print#4,"-";:next
  332. 3320 print#4,cr$:fori=0to2:a$=na$(nf,i):ifa$=""thennexti:goto3340
  333. 3330 a$=na$(nf,i):print#4,""a$spc(12-len(a$))": "dn(nf,i)"  #"dp(nf,i):next
  334. 3340 print#4,spc(14)"[192][192][192][192][192][192][192][192][192][192][192][192][192]";cr$
  335. 3350 print#4,"[199]esamtnote  : "dn(nf,3)"  #"dp(nf,3);cr$
  336. 3360 fori=1to30:print#4,"-";:next:print#4,cr$:close4:goto3220
  337. 3370 :
  338. 3380 _s14,23,"<f 1>:[196]rucken":gosub930
  339. 3390 gn=0:gp=0:nv=0:fornf=0toaf-1:gosub960:ifgv=0thenev=0:goto3420
  340. 3400 ev=val(vr$(nf,3)):dn$(nf)=str$(dn(nf,3)):dp$(nf)=str$(dp(nf,3))
  341. 3410 dp$(nf)="#"+right$(dp$(nf),len(dp$(nf))-1)
  342. 3420 gn=gn+ev*dn(nf,3):gp=gp+ev*dp(nf,3):nv=nv+ev:next:_c:ifnv=0then3510
  343. 3430 gn=int((gn/nv)*100+.5)/100:gp=int(gp/nv+.5):_w0,2,40,18,6
  344. 3440 fori=0to1:_a1+19*i,3,6,na$(i*13,3),13:_a11+i*19,3,6,dn$(i*13),13
  345. 3450 _a17+i*19,3,6,dp$(i*13),13:next
  346. 3460 _s5,17,"[199]esamtdurchschnitt: "gn" "tab(32)gp:_s32,17,"#"
  347. 3470 gosub630:ifx$="[133]"then3530
  348. 3480 fori=0to25:dn(i,3)=0:dp(i,3)=0:dn$(i)="":dp$(i)="":next
  349. 3490 ifx$="_"then:_r:goto3070
  350. 3500 goto480
  351. 3510 _w9,6,22,9,2:_s12,8,"[197]s wurden bisher":_s15,10,"noch keine"
  352. 3520 _s11,12,"[197]ingaben gemacht !":gosub630:goto480
  353. 3530 gf=1:gosub510:ifx$="_"then3470
  354. 3540 ifx$=""then480
  355. 3550 open4,8+sa:print#4,cr$;""nm$(0)"   "nm$(1)"   "nm$(2)
  356. 3560 fori=1to40:print#4,"-";:next:print#4,cr$
  357. 3570 fori=0to25:a$=na$(i,3):ifa$=""thennext:goto3590
  358. 3580 print#4,""a$spc(12-len(a$))": "dn$(i)spc(7-len(dn$(i)))dp$(i):next
  359. 3590 print#4,cr$"[199]esamtdurchschnitt: "gn"  #"gp;cr$
  360. 3600 fori=1to40:print#4,"-";:next:print#4,cr$:close4:goto3470
  361. 3610 :
  362. 3620 rem****************************
  363. 3630 rem*         extras           *
  364. 3640 rem****************************
  365. 3650 :
  366. 3660 gosub710:gosub740:_w13,8,14,4,6
  367. 3670 as=1:sp(1,0)=14:sp(1,1)=9:sp(1,2)=12:sp(1,3)=2
  368. 3680 _s14,9,"[206]otentabelle":_s14,10,"[196]rucker"
  369. 3690 gosub300:ifx$<>cr$then480
  370. 3700 ifze=2then3760
  371. 3710 _w6,2,28,18,6:_s8,3,"[208]unkte[190]"tab(26)"[191][206]oten";
  372. 3720 fori=0to15:_s15,3+i,itab(19)"- ";
  373. 3730 forj=0to3:printchr$(peek(nt+i*4+j));:nextj,i:gosub630
  374. 3740 ifx$="_"then:_c:goto3690
  375. 3750 goto480
  376. 3760 _w8,8,24,5,6:_s10,10,"[211]ekund@radresse:":e$=sa$
  377. 3770 _f27,10,3,"","_",e$,x$:ifx$<>cr$then3740
  378. 3780 sa=-8+val(e$):ifsa<-8orsa>247orsa<>int(sa)ore$=""then3770
  379. 3790 sa$=e$:goto480
  380. 3800 :
  381. 3810 rem****************************
  382. 3820 rem*          ende            *
  383. 3830 rem****************************
  384. 3840 :
  385. 3850 gosub710:gosub740:_w9,6,21,9,2:_s11,8,"[211]oll das [208]rogramm"
  386. 3860 _s11,10,"wirklich beendet":_s11,12,"werden ?  ([202]/[206])"
  387. 3870 gosub630:ifx$=""orx$="_"orx$="n"then480
  388. 3880 ifx$<>"j"then3870
  389. 3890 sys64738
  390.